1. Field
Embodiments of the invention relate to the field of computer systems and more specifically, but not exclusively, to reducing memory fragmentation.
2. Background Information
In typical computer architecture, the initialization and configuration of the computer system by the Basic Input/Output System (BIOS) is commonly referred to as the preboot phase. The preboot phase is generally defined as the time when firmware runs between the processor reset and the Operating System (OS) Loader. At the start of a preboot, it is up to the code in the firmware to initialize the system to the point that an operating system loaded off of media, such as a hard disk, can take over. The start of the OS load begins the period commonly referred to as OS runtime. During OS runtime, the firmware may act as an interface between software and hardware components of a computer system as well as handle system-related tasks. As computer systems have become more sophisticated, the operational environment between the OS level and the hardware level is generally referred to as the firmware or the firmware environment.
During preboot, a preboot memory map is formed that is handed off to the operating system. The preboot memory map indicates memory addresses that are reserved for system use and those that are available to the OS. The OS uses this preboot memory map to form its own memory management scheme. Due to the growing complexity of the preboot phase, the preboot memory map often has numerous fragmented sections. Many of today's operating systems are unable to support preboot memory maps that have excessive fragmentation.